详解Apache Sentry

您所在的位置:网站首页 apache ranger cm 详解Apache Sentry

详解Apache Sentry

2023-03-07 17:45| 来源: 网络整理| 查看: 265

本文分享自华为云社区《【平滑上云】Apache Sentry->Ranger平滑升级方案-云社区-华为云》,作者: 啊喔YeYe 。

背景介绍

 

CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版,常常是许多客户建设IDC大数据平台中的首选。早期CDH版本只提供sentry的权限管理方案,后期新版本提供ranger作为替换方案,而CDH只有商业版本提供sentry升级ranger的服务,开源社区版并未提供这样的能力。本文主要探讨如何平滑解决sentry到ranger升级过程中的权限迁移问题。

Sentry权限介绍

Sentry是典型的RABC权限管理系统,通过用户-用户组-角色关联,最终通过role来进行赋权,一般只用于表级授权,存在三种权限类型:select/insert/all(*)。sentry关键表分析

 

 

sentry_role: 角色列表 sentry_group;用户组列表 sentry_role_group_map;角色、用户映射关系表 sentry_db_privilege: 表权限信息表 sentry_role_db_privilege_map: 权限、角色映射关系表

 

举例

表bi_plus.data_xy_b_error_event赋予了XX用户select权限,数据模型如下:

 

Sentry->Ranger方案分解

Ranger基于策略policy的PBAC赋权策略,面向资源授权。转换sentry策略我们先需要解决用户、用户组、角色同步问题。整体迁移策略

 

用户同步方案

Sentry不存在用户,一般来自于外部OpenLdap。Ranger本身支持外部LDAP同步,在华为云MRS 中通过配置usersync实例与LDPA对接即可实现

用户组同步方案

Sentry用户组如果来源于外部Ldap,参考用户同步方案同步用户组即可。如果没有外部LDAP,通过读取表sentry_group获取用户组插入Ranger中即可实现。

角色同步方案

角色同步稍比用户、用户组同步复杂需要自行开发工具支持。角色同步时要关联用户、用户组,因此需要先完成用户、用户组同步后再进行角色同步。

策略同步

 

分析sentry中hive表权限,对应每张表生成对应一条ranger策略,例如:库表:default.student生成策略名:default_student。 根据表权限类型,分解为:select、all(*)、insert对相关角色&用户&用户组进行分组,生成为ranger中策略的Condition内容

 

样例

表bi_plus.data_xy_b_error_event在sentry中实际只有对部分角色用户进行了select授权

 

对应生成的ranger策略为: bi_plus_data_xy_b_error_event

 

FAQ

Sentry本身不存储用户信息,实际多个客户案例来看一般一个用户对应一个用户组且名称相同,我们基于这个策略进行同步。 Ranger用户组、用户不区分大小写而sentry中如果存在大小写差异的用户组会导致同步失败,这种情况建议改造或者下线其中不规范的用户组命名。

 

使用华为云大数据产品→大数据迁移上云解决方案_IDC上云_CDH上云_云上资源迁移-华为云,提供端到端迁移方案与技术支持。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3